本文介绍了 iOS 实际开发过程中的一些实用代码段。
代码段
添加 pch 文件
pre-Compile Header(预编译头文件),一般存放一些使用频率较高的代码或文件。尽量不要存放太多内容,如果预编译的代码太多的话,会增加程序的启动时间。
Command + N 打开新建文件窗口,选择 iOS –> Other –> PCH File 创建 pch 文件,如图:
点击 Next
点击 Create
PCH 文件创建好之后需要配置一下,如图:
将图片中的 Precompile Prefix Header
右边的NO改为Yes。预编译后的pch文件会被缓存起来,可以提高编译速度。
同时编辑 Prefix Header
,如图:
这是相对路径的写法,pch
指的是项目名,pch.pch
指的是项目中pch文件的文件名和后缀。
到这里 PCH 文件已经创建并配置完成,最后一步是把需要预编译的代码放到 pch.pch
中,如图:
这里我设置了两个宏定义(屏幕宽和屏幕高)并引入了一个Common.h
的头文件。
然后你就发现 kSCREEN_WIDTH 和 kSCREEN_HEIGHT 变成全局的了。
正则表达式
1 | // 验证邮箱 |
参考网站:IOS常用正则表达式
点击状态栏不返回顶部问题
1 | @property(nonatomic) BOOL scrollsToTop __TVOS_PROHIBITED; // default is YES. |
官方文档说:当一个控制器只有一个 scrollView 或 scrollView 的子类(tableView,collectionView等),并且把这个属性设置为 YES,点击状态栏才能回到顶部;当有2个或以上的scrollView,系统不知道你需要操作的是那个scrollView,因此需要将其他的scrollView的这个属性设置为 NO。
导航栏和状态栏
1 | // 隐藏导航栏 |
for循环和while循环
1 |
|
截取屏幕图片
1 | //创建一个基于位图的图形上下文并指定大小为CGSizeMake(200,400) |
图片压缩
方案一:文件体积变小,但是像素没变,长宽尺寸不变,可能导致图片质量下降,并且有一个压缩最小值。
1 | NSData *data=UIImageJPEGRepresentation(image, 0.0f); |
方案二:裁剪图片,图片像素数减少,长宽尺寸减小,图片体积也减少
1 | - (NSData *)imageWithImage:(UIImage*)image |
上传图片
1 | AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; |
UITableViewWrapperView 和UITableView 的 frame 不同
1 | 解决方案 |
iOS 自定义TextView/TextField光标颜色、长度或高度
1 | 1. TextView/TextField光标颜色可通过设置tintColor属性进行修改: |
输入框明文和密文切换问题
1 | 1. 明文和密文切换末尾空白 |
shareSDK问题
1 |
|
textView与textField限制输入字数问题
1 |
|
修改tableView的分割线
1 | if ([tableView respondsToSelector:@selector (setSeparatorInset:)]) { |
UITableView 的plain样式分组名悬浮问题
1 | #pragma mark - 禁止session滚动 |
iOS 支持 ipv6 问题
1 | 1.AFNetworking 换成最新版本 |
URLDecode 解码
1 | + (NSString *)URLDecodedString:(NSString *)str |
textView 根据输入内容改变高度(最多显示5行)
1 | - (void)textViewDidChange:(UITextView *)textView |
“Request failed: unacceptable content-type: text/plain(text/html)” 解决方案
1 | 此时需要修改AFNetworking可接收的Content-Type,前往AFNetworking源代码目录找到AFURLResponseSerialization.m文件将里面的代码: |
UILabel的行间距,字间距以及高度计算
1 |